#!/bin/bash

# 🚀 A2A多智能体Web系统启动脚本

echo "🚀 启动A2A多智能体Web系统"
echo "================================"

# 检查uv命令
if ! command -v uv &> /dev/null; then
    echo "❌ 未找到uv，请先安装uv"
    exit 1
fi

# 检查端口占用情况
check_port() {
    if lsof -Pi :$1 -sTCP:LISTEN -t >/dev/null 2>&1; then
        echo "⚠️  端口 $1 已被占用"
        return 1
    else
        echo "✅ 端口 $1 可用"
        return 0
    fi
}

echo ""
echo "🔍 检查端口占用情况..."
check_port 8000

# 启动Web后端
echo ""
echo "🌐 启动Web后端服务 (端口 8000)..."
echo "� 使用uv管理的Python环境..."

# 在后台启动Web后端
uv run python web_interface/backend/web_backend.py &
WEB_BACKEND_PID=$!

echo "Web后端进程ID: $WEB_BACKEND_PID"

# 等待后端启动
echo "⏳ 等待Web后端启动..."
sleep 5

# 检查后端是否启动成功
if curl -s http://localhost:8000 > /dev/null 2>&1; then
    echo "✅ Web后端启动成功"
else
    echo "❌ Web后端启动失败，检查日志..."
    kill $WEB_BACKEND_PID 2>/dev/null
    exit 1
fi

# 启动前端服务 (简单的HTTP服务器)
echo ""
echo "🌐 启动Web前端服务 (端口 3000)..."
cd web_interface/frontend

# 使用Python内置HTTP服务器
uv run python -m http.server 3000 &
WEB_FRONTEND_PID=$!

echo "Web前端进程ID: $WEB_FRONTEND_PID"

# 等待前端启动
sleep 2

echo ""
echo "🎉 A2A多智能体Web系统启动完成！"
echo "================================"
echo "📍 Web前端地址: http://localhost:3000"
echo "📍 API后端地址: http://localhost:8000" 
echo "📖 API文档地址: http://localhost:8000/docs"
echo ""
echo "💡 使用说明:"
echo "1. 首先确保所有Agent服务正在运行"
echo "2. 打开浏览器访问 http://localhost:3000"
echo "3. 在聊天界面中与AI团队对话"
echo ""
echo "🛑 停止服务: Ctrl+C 或运行 ./stop_web.sh"
echo ""

# 创建停止脚本
cat > stop_web.sh << 'EOF'
#!/bin/bash
echo "🛑 停止A2A多智能体Web系统..."

# 停止指定端口的进程
pkill -f "web_backend.py"
pkill -f "python -m http.server 3000"

echo "✅ Web系统已停止"
EOF

chmod +x stop_web.sh

# 保持脚本运行
echo "🔄 Web系统正在运行... (按 Ctrl+C 停止)"
trap 'echo ""; echo "🛑 停止Web系统..."; kill $WEB_BACKEND_PID $WEB_FRONTEND_PID 2>/dev/null; exit 0' INT

# 等待进程
wait
